home *** CD-ROM | disk | FTP | other *** search
- /*
- Visual FX Arexx Script
- Written By J.L. White
- (C)1997 Merlin's Software
- */
-
- Options Results
- address "IMAGEFX.1"
- ScreenToFront
- Undo Off
- if exists("libs:flyer.library") then do
- TOASTERLIB="ToasterARexx.port"
- call remlib('ToasterARexx.port')
- call remlib('PROJECT_REXX_PORT')
- call addlib('PROJECT_REXX_PORT' , 0)
- call addlib(TOASTERLIB,0)
- end
- call Settings()
- call open TempFile,"VFXIFX:TempDrawer/"FXNum".txt",R
- line = readln(TempFile)
- Type = strip(line)
- line = readln(TempFile)
- MType = strip(line)
- call close (TempFile)
- j=0
-
- TFrames = Frames
- if Field = 1 then TFrames = Frames*2
- do i = 1 to Frames
- call open TempFile,"RAM:VFXNums",W
- call writeln TempFile,right(i,5,'0')
- call writeln TempFile,right(Frames,5,'0')
- call close TempFile
- f=0
- Redraw Off
- FieldSet = 0
- if Padding ~= -1 & i = 1 then call PadIt(1)
- call LoadB()
- call LoadA()
- j = j+ 1
- call DoIt()
- Redraw On
- call SaveIt()
- if Field = 1 then do
- Redraw Off
- FieldSet = 1
- call LoadB()
- call LoadA()
- j = j + 1
- call DoIt()
- Redraw On
- call SaveIt()
- end
- if Padding ~= -1 & i = Frames then call PadIt(2)
- end
- if SaveType = 0 then do
- if Padding = -1 then
- call MakeIcon(SaveName,(Frames-10))
- else
- call MakeIcon(SaveName,(Padding+(Frames-10)))
- end
- Undo On
- exit
-
-
- PadIt:
- arg PadNum
- if (POS('FLY_1',SHOW('Ports')) = 0) then do
- Undo On
- exit
- end
- if PadNum = 1 then do
- if IAType = 0 then do
- do Pad = Padding to 1 by -1
- LoadBuffer PicAName Force StartA-(Pad-1)
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2,6,Compression)
- end
- end
- if IAType = 1 then do
- LoadBuffer PicAName Force 1
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2*Padding,6,Compression)
- end
- if IAType = 2 then do
- LoadBuffer PicAName Force
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2*Padding,6,Compression)
- end
- if IAType = 3 then do
- do Pad = Padding to 1 by -1
- LoadBuffer PicAName""right(StartA-(Pad-1),3,'0') Force
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2,6,Compression)
- end
- end
- end
- else do
- if IBType = 0 then do
- do Pad = 1 to Padding
- LoadBuffer PicBName Force StartB+Pad+TFrames
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2,6,Compression)
- end
- end
- if IBType = 1 then do
- LoadBuffer PicBName Force 1
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2*Padding,6,Compression)
- end
- if IBType = 2 then do
- LoadBuffer PicBName Force
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2*Padding,6,Compression)
- end
- if IBType = 3 then do
- do Pad = 1 to Padding
- LoadBuffer PicBName""right(StartB+Pad+TFrames),3,'0') Force
- call Switcher(TOSW)
- call Switcher(MDV1)
- Render Go
- call RecordAdd(SaveName,2,6,Compression)
- end
- end
- end
- return
-
-
- LoadA:
- if (POS('FLY_1',SHOW('Ports')) = 0) then do
- Undo On
- exit
- end
- if j = TFrames then return
- if IAType = 0 then do
- LoadBuffer PicAName Force i+StartA
- end
- if IAType = 1 then do
- LoadBuffer PicAName Force 1
- end
- if IAType = 2 then do
- LoadBuffer PicAName Force
- end
- if IAType = 3 then do
- LoadBuffer PicAName""right(i+StartA,3,'0') Force
- end
-
- return
-
- LoadB:
- if (POS('FLY_1',SHOW('Ports')) = 0) then do
- Undo On
- exit
- end
- if j = 1 then return
- if IBType = 0 then do
- LoadBuffer PicBName Force i+StartB
- end
- if IBType = 1 then do
- LoadBuffer PicBName Force 1
- end
- if IBType = 2 then do
- LoadBuffer PicBName Force
- end
- if IBType = 3 then do
- LoadBuffer PicBName""right(i+StartB,3,'0') Force
- end
- Swap
- return
-
-
- SaveIt:
- if (POS('FLY_1',SHOW('Ports')) = 0) then do
- Undo On
- exit
- end
- if SaveType = 0 then do
- call Switcher(TOSW)
- call Switcher(MDV1)
-
- Render Go
- if Field = 1 then
- call RecordAdd(SaveName,1,6,Compression)
- else
- call RecordAdd(SaveName,2,6,Compression)
- end
-
- if SaveType = 1 then do
- if Field = 1 then do
- f= f + 1
- if f = 1 then
- SaveBufferAs ILBM "VFXIFX:TempDrawer/PicA"
- if f = 2 then do
- GetMain
- parse var result Name Width Height Blah
- Scale Width Height/2
- Swap
- LoadBuffer "VFXIFX:TempDrawer/PicA" Force
- Scale Width Height/2
- Hook Interlace
- SaveBufferAs ILBM SaveName""right(i,3,'0')
- f = 0
- end
- end
- else do
- SaveBufferAs ILBM SaveName""right(i,3,'0')
- end
- end
- return
-
-
- DoIt:
- if j = TFrames then do
- Swap
- return
- end
- if j = 1 then do
- GetMain
- Parse Var result name width height blah
- Hmid=height/2
- Wmid=width/2
- Tot=(height*2)+(width*2)
- stp=Tot/(TFrames-2)
- edtype = Type
- IF edtype=0 THEN EdgeMode FeatherOut 4
- IF edtype=1 THEN EdgeMode FeatherOut 20
- IF edtype=2 THEN EdgeMode Normal 0
- ActiveColor 1
- DrawMode Normal
- DrawStyle Normal
- Pen 0 1
- Blend 100
- AlphaChannel Off
- FillMode Solid 0 0 0 SMOOTH
- Apos=Wmid
- Bpos=0
- Cpos=Wmid+stp
- Dpos=0
- Epos=Wmid+1
- Fpos=Hmid/2
- pt=0
- return
- end
-
- if MType ~= 0 then do
- Swap
- HorizFlip
- Swap
- HorizFlip
- end
- NewArea
- AddArea Wmid Hmid
- AddArea Apos Bpos
- DrawStyle Normal
- IF pt=1 THEN CALL Firstpos
- IF pt=2 THEN CALL Secpos
- IF pt=3 THEN CALL Tripos
- IF pt=4 THEN CALL Fourpos
- AddArea Cpos Dpos
- DrawStyle RubThrough
- FilledPoly
- CALL picker
- DrawStyle Normal
- if MType ~= 0 then do
- HorizFlip
- end
- return
-
-
- Firstpos:
- AddArea width 0
- Return
-
- Secpos:
- AddArea width 0
- AddArea width height
- Return
-
- Tripos:
- AddArea width 0
- AddArea width height
- AddArea 0 height
- Return
-
- Fourpos:
- AddArea width 0
- AddArea width height
- AddArea 0 height
- Addarea 0 0
- Return
-
- picker:
- SELECT
- WHEN pt=0 THEN CALL topa
- WHEN pt=1 THEN CALL righta
- WHEN pt=2 THEN CALL bota
- WHEN pt=3 THEN CALL lefta
- WHEN pt=4 THEN CALL topb
- END
- Return
-
-
- topa:
- IF (Cpos+stp)>width THEN pt=1
- IF (Cpos+stp)>width THEN CALL rightone
- IF (Cpos+stp)<width THEN Cpos=Cpos+stp
-
- Return
-
- rightone:
- Ustp=(Cpos+stp)-width
- Nstp=stp-Ustp
- Cpos=width
- Dpos=Dpos+Nstp
- Return
-
-
- righta:
- IF (Dpos+stp)>height THEN pt=2
- IF (Dpos+stp)>height THEN CALL botone
- IF (Dpos+stp)<height THEN Dpos=Dpos+stp
- Return
-
- botone:
- Ustp=(Dpos+stp)-height
- Nstp=stp-Ustp
- Dpos=height
- Cpos=Cpos-Nstp
- Return
-
- bota:
- IF (Cpos-stp)<0 THEN pt=3
- IF (Cpos-stp)<0 THEN CALL leftone
- IF (Cpos-stp)>0 THEN Cpos=Cpos-stp
- Return
-
- leftone:
- Nstp=stp-Cpos
- Cpos=0
- Dpos=Dpos-Nstp
- Return
-
- lefta:
- IF (Dpos-stp)<0 THEN pt=4
- IF (Dpos-stp)<0 THEN CALL topone
- IF (Dpos-stp)>0 THEN Dpos=Dpos-stp
- Return
-
- topone:
- Nstp=stp-Dpos
- Dpos=0
- Cpos=Cpos+Nstp
- Return
-
- topb:
- IF (Cpos+stp)>Wmid THEN Cpos=Wmid
- IF (Cpos+stp)<Wmid THEN Cpos=Cpos+stp
- Return
-
-
-